perm filename E.ALS[UP,DOC]27 blob
sn#207395 filedate 1976-03-23 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00030 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00004 00002 NEWS about E (newest first, older news on p. 30). Directory on p. 1, Index on p. 3.
C00014 00003 INDEX of commands.
C00018 00004 Abbreviations and explanation of E documentation. Credits.
C00023 00005 General remarks.
C00029 00006 PAGE CHANGING commands.
C00031 00007 WINDOW and ARROW moving commands.
C00039 00008 LINE MARKING commands.
C00042 00009 LINE-EDIT commands.
C00053 00010 Attach and Copy commands: A C
C00062 00011 LINE-INSERT mode.
C00066 00012 Handling very long lines. XBREAK and XJOIN.
C00069 00013 SEARCH (or FIND) commands: F XFIND *
C00082 00014 SUBSTITUTION commands: \
C00092 00015 FILE-SWITCHING and text transfering commands: ε λ H ∃ ?
C00102 00016 XJUST XJFILL XCENTER XJOIN MARGIN CONTROL commands:
C00113 00017 XALIGN XJLEFT XINDENT → ← Other MARGIN CONTROL commands:
C00120 00018 Other EXTENDED commands: X<cmd>
C00129 00019 System commands to evoke E and SWITCHES permitted after filenames.
C00137 00020 Using ETV from a TTY or IMLAC.
C00146 00021 PARENTHESIS finding/matching commands: ( ) XLPAREN XRPAREN ↔ XPAREN
C00162 00022 Automatic and manual BEEPING upon command completion: XBEEP
C00164 00023 Message handling partial-sign command: ∂<cmd> 0∂
C00173 00024 Defining and using MACROS: XDEFINE Y
C00185 00025 ETV files extended by other programs.
C00188 00026 BOOK MODE (/B) and the READ command
C00195 00027 IMLAC use of line editor.
C00197 00028 NEW EXTENDED COMMANDS PROVIDED MAINLY FOR TELETYPE USERS
C00199 00029 FILEHACKS
C00201 00030 OLD news about E. More recent news is on p. 2.
C00226 ENDMK
C⊗;
NEWS about E (newest first, older news on p. 30). Directory on p. 1, Index on p. 3.
∂3/22/76 -- New switch /E begins edit at end of last page of the file.
If a number precedes the E, e.g., /12E, then editing begins at the
end of the page whose number is given (in the example, at the end of
page 12). This switch is useful for example when transferring
messages from file to file.
A bug existent from about 1900 on 3/19/76 to about 2230 on 3/20/76
has been fixed; it caused occasional file garbaging after
non-line-editor substitution commands were used. Some files have had
their directories written out wrong; other files lost text. About 7
users had files clobbered; if you have questions, see ME.
Another older bug has been fixed that occasionally caused characters
to be lost from the middle of a message file when rippling occurred
if the file was bigger than 8K.
Any number of substitutions can now be done explicitly and E will
no longer stop and request confirmation after 100 have been done.
∂3/19/76 -- The old limit of 511 characters on a line has been removed.
Will 131070 chars be enough? Lines longer than about 126 characters
still cannot be loaded into the line editor but can be broken up at
spaces or tabs with XJFILL or XJUST, or at any column position with
the new XBREAK command.
XBREAK will break lines at any specified column position by inserting
CRLFs. The column position may be specified by a numeric argument
following BREAK; the default BREAK column is originally 80 but any
typed-in column argument overrides this and is sticky. The command
takes effect starting with the current line (as marked by the arrow)
or with the first line of the ATTACH buffer if there is an attach-
ment. The current line position is not changed by this command.
If XBREAK is given WITH a preceding numeric argument, then that many
lines are broken (not, however, extending beyond the end of the page
or attach buffer) and each line is broken as many times as necessary
to prevent any resulting line from being longer than the specified
column argument.
If XBREAK is given WITHOUT a preceding numeric argument, then the
current line (or the first attached line) is broken ONLY ONCE, at the
specified (or default) column position.
The XJOIN command has been modified to join lines without introducing
spaces for deleted CRLFs. XJOIN will take a preceding numeric
argument specifying the number of lines to be joined (default is 2
lines). XJOIN takes effect at the current line or at the first line
of the ATTACH buffer and does not cross page boundaries. The current
line position is not changed by this command.
Thus XBREAK and XJOIN can be used together to manipulate, and to
allow editing of, very long lines because these commands do not
change any text in affected lines except for the deletion or
insertion of CRLFs.
There can now be up to 23 (decimal) marks placed within a file and
marks beyond line or page 512 are remembered correctly.
The repeat argument limit of 510 has been increased to 262142.
The ≤ and ≥ commands now take repeat numeric arguments.
The Z command (Imlacs only) now accepts a numeric arg which causes an
L command to be simulated with that (relative or absolute) arg first.
∂2/14/76 -- Searching from first character on line. Null substitution.
The old E bug causing searches to ignore the first character of the
current line is fixed! Also, the null substitution string bug has
been fixed completely now (we think).
∂2/13/76 -- Changes to commands FF, VT, L, T, B. New commands ∧ and ∨.
FF and VT do forward and backward windowing (like W and old L).
These can be preceded by a numeric argument to move that many
windows. ⊗FF and ⊗VT do same thing but will cross page boundary if
given from last (first) window of page; from line editor, these
commands are illegal. With any numeric argument, ⊗FF and ⊗VT will
NOT cross page boundaries; that is ⊗#⊗FF and ⊗#⊗VT (where # is
numeric argument) are same as ⊗#FF and ⊗#VT. ⊗0⊗FF and ⊗0⊗VT do
forward and backward half-windowing without changing pages. To get
the former meaning of VT, use BS (from line editor αβBS) or ⊗U.
New command ⊗L (replacing old command ⊗L), preceded by a numeric
argument, goes to the line whose number on the current page was given
as the argument. ⊗L with no argument goes to the first line on the
page, and ⊗∞⊗L goes to the row of stars at the end of the page. The
former use of ⊗L is taken over by the new VT command (see above).
The ⊗T and ⊗B commands now only glitch the screen, bringing in four
lines at the top and bottom, respectively. Preceded by an argument,
each of these will glitch the screen by a number of lines equal to
four times the argument. These commands will not move the arrow
unless the glitching would have caused it to move off screen, in
which case it will be moved back to the edge of the screen from which
it moved off.
The new ⊗∧ and ⊗∨ commands take over one of the functions of the old
⊗T and ⊗B, namely, moving the arrow to the top or bottom line of the
screen. But these commands will never cause the screen to glitch.
⊗∧ moves arrow up to the top; ⊗∨ moves it down to the bottom. Preceded
by a numeric argument n, these commands move the arrow to the line that
is n lines from the specified edge (top or bottom). For example,
⊗3⊗∧ will move the arrow to the third line in the current window, and
⊗4⊗∨ will move the arrow to the fourth line from the bottom. An
argument that is bigger than the screen size will move the arrow only
to the edge of the screen. ⊗0⊗∧ and ⊗0⊗∨ both move the arrow to the
middle line on the screen.
∂2/4/76 -- New commands XLPAREN and XRPAREN
XLPAREN and XRPAREN commands now are the multipage versions of the
⊗( and ⊗) commands, that is they search for left and right
parentheses over the rest of the file.
∂ *** FOR OLDER NEWS ABOUT E, SEE P. 30. ***
INDEX of commands.
Read α as CONTROL, β as META, ⊗ as EITHER CONTROL OR BOTH CONTROL AND META
N=Normal, L=Line-insert, E=line-Edit, A=Attach, X=eXtend.
# stands for any decimal number
Command Meaning Mode Page
⊗A Attach 1 line N
⊗+⊗A Add to A A
⊗#⊗A Attach # lines A
⊗B glitch screen up from Bottom N,A
⊗#⊗C Copy # lines into attach buffer N
αD Delete char E
αβD Delete line N
⊗E Exit N,A
αF Find string N
αβF Find word N
⊗G unused
⊗H go to Home file N
⊗I enter line-Insert mode E
⊗J Jump arrow line to top of scr N
⊗-⊗J Jump arrow line to bot of scr N
⊗#⊗J Jump arrow line up # lines N
⊗-⊗#⊗J Jump arrow line down # lines N
αβK Kill attached lines A
⊗#⊗L go to Line # N
αM to next Mark N
αβM Make Mark N
⊗N unused
⊗O unused
⊗P go to next Page N
⊗-⊗P go to previous Page N
⊗Q copy line above N
αβR Replace attached lines A
αR Repeat line editor αS or αK cmd E
αS Skip to next char typed E
⊗T glitch screen down from Top N
⊗U move arrow Up a line N
⊗V redraw screen N
⊗W move to next Window N
⊗X enter eXtended command next N
⊗Y call macro N
⊗Z unused
⊗ε switch to given file in READWRITE mode N
⊗λ switch to given file in READONLY mode N
⊗? switch to the file E.ALS[UP,DOC]/R N
⊗∃ type names of files in fileswitch list N
⊗0⊗∃ zero fileswitch list N
⊗* repeat last ⊗F or ⊗XFIND command given N
⊗\ repeat last substitution command given N
⊗↑ move to end of line above E,N
⊗↓ move to end of line below E,N
⊗; move straight up E,N
⊗: move straight down E,N
⊗( find ( E,N
⊗) find matching ) E,N
⊗↔ return to place ( ) or ↔ given E,N
⊗← shift line left N
⊗→ shift line rght N
⊗> move arrow down 4 lines N
⊗< move arrow up 4 lines N
⊗≥ move arrow down half a screen N
⊗≤ move arrow up half a screen N
⊗∧ move arrow to top of screen N
⊗∨ move arrow to bottom of screen N
⊗∂ operate on message with nxt cmd N
Abbreviations and explanation of E documentation. Credits.
This version of the E manual is intended for on-line use by the normal
user. It may be referenced at any time while editing another file simply
by typing a <CONTROL>? command. One may always return to one's original
file by typing the <CONTROL>H command.
A simplified form of this manual for the beginner is available by
typing HELP ETEACH with a carriage return to the system. This copies a
file named TEACH into one's file area and allows one to read it and
modify it for practice.
This is p. 4 of E.ALS[UP,DOC] (see the top line with asterisks).
Page 1, the "directory" page, is automatically prepared by E, and in
this case has been planned to be of maximum help to the user. There is
also an Index of Commands on p. 3.
ABBREVIATIONS used in this manual and in TEACH to characterize commands.
α means hold the "CONTROL" key down while typing a character.
β means hold the "META" key down while typing a character.
αβ means hold both "CONTROL" and "META" keys down while typing.
⊗ means hold either the "CONTROL" key alone or both "CONTROL"
and "META" keys down while typing.
Most commands are single characters with one or both of the two keys.
Additional abbreviations
<cr> carriage RETURN key. <lf> LINE feed key.
<tab> TAB key. <alt> ALT-mode key.
<bs> Back-Space key. <form> FORM-feed key.
<vt> the VT key. <clear> the CLEAR key.
CURRENT means the current line (normally with an → or ↔ on the left).
Credits.
Dan Swinehart wrote TV, the original version of the display editor,
and created the original version of TEACH. Fred Wright wrote the FAIL
version of TV (called E). Brian Harvey modified TEACH to reflect
differences between E AND TV. Arthur Samuel and Brian Harvey are
responsible for this version. Address all comments and questions to
Samuel, who is currently trying to fix a few of the many remaining bugs
in E.
Disclaimer.
An attempt has been made to present a coordinated view of E. To this
end some simplications have been made. The experienced user may develop
techniques that are not described in this manual. Any outright errors
should, however, be called to our attention.
An earlier and more complete (but perhaps less accurate) description
of E features is available in the TV manual, TVED.DCS[S,DOC], and the
file TV2E.FW[UP,DOC] which describes how E differs from TV.
General remarks.
E is a page oriented editor designed for use with a display
terminal. It brings one page of the text into core, as requested, and it
displays a portion of this page as if through a window. A line pointer
and an underscoring cursor mark the position in the text where editing
is to occur. Special commands allow you to go from page to page, to
move the window up or down on the page and to move the line pointer and
cursor as desired.
A window of text on the screen is preceded by a header line which
contains a row of asterisks, (if the window starts at the head of the
page) and information as to the Page being viewed, the name of the file,
the state of the file (whether opened in read only mode or not), and
certain letters that indicate the state of the editing. If the window
starts at other than the first line on the page, then the asterisks are
replaced with dots and the beginning line number is also displayed.
The window is followed by a trailer line which reports the location of
the arrow, the total number of lines on the page, the page number
(repeated for convenience), the total number of pages in the file and
finally some information as to the state of the page with respect to the
number of records that it currently occupies on th disk and will occupy.
The number of current records is followed by the letter R. The final
item may be either the number of characters shy (shown with a - sign) or
the number of characters in excess (shown with a + sign) over the space
allotted. If this number would exceed 640 (a full record), it is not
shown but it is replaced by the number of records followed by either the
letter B (for bloat) or X (for excess).
Extra records indicated by a "B" on the trailer line will never be
removed automatically, although they can be removed by the XBURP
command. The trailer line contains asterisks if the last line of the
page appears on the page and dots if it does not.
E does not make a separate disk copy of the file being edited
unless requested to do so by the use of a special command (described
later), so take care or you may damage a file that belongs to someone
else.
E achieves its speed (1) by using the system's line-readwr and only
changing the core copy of the text on the completion of a line edit, and
(2) by updating the disk copy of the page only on the completion of a
page edit (automatically effected by moving to another page). You can
undo an entire page of incorrectly made modifications by cancelling an
update, but unfortunately, you can also lose an entire page of desired
modifications or additions if the system should go down unexpectedly.
Always remember that the text shown on the display may not, and usually
does not, mirror the true state of the actual text on the disk.
E is best understood by recognizing that it operates in a variety of
different modes and that many commands are appropiate only to certain
modes. In fact some commands have quite different effects depending upon
the mode that E is in at the time that the command is given.
The dominant mode is the NORMAL mode. This allows for page, window
and line marker movement commands and commands which enter the other
modes.
PAGE CHANGING commands.
PAGE-CHANGING commands are single characters typed with the CONTROL key
held down or with both the CONTROL and the META keys held down. They may
take modifiers as shown below.
⊗P Go to the next PAGE.
⊗7⊗P Go to page 7 if possible otherwise to the last page.
⊗+⊗7⊗P Go foreward 7 pages if possible, otherwise to the last page.
⊗-⊗P Back up to the previous page.
⊗-⊗3⊗P Go backward 3 pages if possible otherwise to the first page.
It is good practice to limit the page size to less than 150 lines.
This eases the load on the editor and makes the directory of more use.
The directory will be much more usefull if you also make it a practice
to start each page with a suitable commant, in the case of code perhaps
containing a list of all labels to be found on the page. You can than
use a special search procedure (explained on p. 13) to expedite the
location of any desired item that is so listed.
WINDOW and ARROW moving commands.
These are Normal-mode commands. The CURRENT line is marked by an arrow
and is the line that would be processed if one were to enter the line-
editor. In the descriptions below it will be referred to as the arrow
line.
The first set of commands control the position of the window on the page.
The arrow is usually repositioned by these commands.
⊗W Advance the WINDOW, that is, move the last line to the top. If
there is less than a windowful left, move the window only enough
enough to see to the end.
⊗0⊗W Advance the window half way.
<form> Advance the window, that is, move the last line to the top. This
command (without control bits) does not cross page boundaries.
An argument may be used (typed with control bits and preceding
the ff) to define the number of windowfuls to be advanced.
⊗<form> Advance the window as defined above but cross page boundaries if
they are encountered.
<vt> Move the window up so that the first line becomes the LAST. This
is the reverse of <form>. This command without control bits does
not cross page boundaries.
⊗<vt> Move the window up so that the first line becomes the LAST. This
command (with control bits), will cross page boundries.
The following commands move the position of the window on the page, leaving
the arrow so that it still points to the same line of the text, if this is
possible, otherwise causing it to point to the first or last line on the
window.
⊗J Move (JUMP) the window so that the CURRENT line is at the top.
⊗0⊗J Move (JUMP) the window so that the CURRENT line is at the middle.
⊗-⊗J Move (JUMP) the window so that the CURRENT line is at the bottom.
⊗3⊗J Move (JUMP) the window so that the CURRENT line is 3 lines higher
in the window (with the top as the limit).
⊗-⊗7⊗J Move (JUMP) the window so that the CURRENT line is 7 lines lower
in the window (with the bottom as the limit).
Note that the default argument for the J commands is, in
effect, infinity, with the argument 0 having a special meaning
rather than being a NO-OP.
⊗T Glitch the screen so that 4 additional lines are displayed at the
top of the screen. An argument, if used, is in terms of units of 4.
⊗B Glitch the screen so that 4 additional lines are displayed at the
bottom of the screen.
The following commands move the arrow with respect to the window, without
moving the window.
⊗∧ Move the arrow to the top line in the window.
⊗3⊗∧ Move the arrow to the line that is 3 down from the top of the
window.
⊗9⊗9⊗∧ Since this would be off of the window the arrow is simply moved to
the bottom of the window. (The next command does this more easily).
⊗∨ Move the arrow to the bottom line in the window.
⊗4⊗∨ Move the arrow to the line that is 4 up from the bottom of the
window.
The following commands move the arrow with respect to the text. Should this
require the arrow to leave the currently displayed window, the window is
shifted, usually so that the arrow line will be in the middle of the window.
<cr> Move the arrow down a line.
Note, no control keys used.
⊗> Move the arrow down 4 lines.
⊗≥ Move the arrow down 1/2 screen.
<bs> Move the arrow up a line.
⊗< Move the arrow up 4 lines.
⊗≤ move the arrow up 1/2 screen.
⊗L Move the arrow to the first line of text on the page.
⊗5⊗L Move the arrow to the 5th line of text on the page.
⊗∞⊗L Move the arrow to the row of asterisks at the end of the page.
The following commands remove text lines from the page.
αβD DELETE the entire CURRENT line.
This takes both α and β since αD has a different meaning.
Use with caution, the only way to undo a line deletion is
to cancel all corrections to the current page that have
been made since the last disk update.
⊗4αβD Delete 4 lines starting with CURRENT.
Two NORMAL-MODE commands that may be used to save an edited page are:
⊗. Write the current page (as corrected) into the disk file.
Note, this is done automatically with a change page command.
⊗E Do a ⊗. and then EXIT to the system monitor.
Most of the NORMAL-MODE commands require the use of the CONTROL key
and perhaps the META key. <cr>, <vt> and <form> are exceptions.
LINE MARKING commands.
E also provides the facility of marking up to 23 line locations with a
rapid way to return to these locations by using the following commands.
Marks are relative with respect to the line locations on the page but the
stored values are corrected for line insertions and deletions and for page
mark insertions and deletions so that the marks appear to be sticky. Marks
on lines that are attached or deleted are obliterated.
At the present time, no attempt has been made to restore marks to their
proper position after a ⊗XCANCEL command as this would involve some extra
computations at the time of each page change which seems to be excessive.
Marks are saved during ⊗ε, ⊗λ, ⊗? and ⊗H file-switching operations and
are restored on returning (by ⊗H or number) to a previously marked file.
αβM Mark the CURRENT location, recording page number
and line number.
αβ-αβM Erase the MARK at CURRENT.
αβ0αβM Erase all MARKS.
αM Go to the next MARK (cyclicly).
α-αM Go to the previous MARK (cyclicly).
α2αM Go the the second Mark forward from here (cyclically).
α-α3αM Go the the third Mark before the current location (cyclically).
LINE-EDIT commands.
E uses the line-editing commands that are a part of the operating
system.
Typing a character without a CONTROL or META key will normally invoke
the line editor and the character is typed into the CURRENT line. A
cursor will appear under the first character in the line and in that
position where the next typed character will go. A character so typed
overwrites the character that was at the cursor's position. E will be
in the LINE-EDIT mode.
A word of caution- it is usually safe to continue typing on entering
the LINE-EDIT mode without waiting for the system to catch up. This can
fail, so look before giving a carriage return and if anything is amiss
type <alt> and start over again.
When the arrow appears to point at the bottom row of asterisks
(which, of course, is not in the text) E will accept anything that is
typed as an added line of text. The asterisks temporarily dissappear
only to reappear below the new line on the completion of the addition,
and E reverts to the NORMAL mode.
When in the LINE-EDIT mode a <cr> will terminate the mode and move
CURRENT to the next line. A α<cr> will terminate the LINE-EDIT mode
without moving CURRENT. Remember that the line corrections do not
appear in the core image until you leave the line-editor mode.
Also remember that the version on the disk still does not show your
corrections until a disk update has been initiated. When in this
intermediate state the letter W will appear at the end of the title line
(with asterisks or dots at the top of the window, meaning that something
is yet to be written.
If your change will require the directory to be changed, this will
be shown by the letter D in this top line. The letter X can also appear
if the change requires a in extension in the space on the disk assigned
to the current page. The letter X also appears on the trailer line with
a number specifying the number of extra records (of 128 words) that will
be required. If no extra records are required this X is replaced by the
letter R following a number specifying the number of records that the page
occupies or will occupy on the disk. After a deletion the letter B may
appear in place of this R or X, again preceded by a number that specifies
the number of all-null records that the page will contain.
By the way, window moving commands do not automatically update the
disk, whereas page changing commands always do an update.
Most of the line editing commands listed below will also enter the
LINE-EDIT mode from the NORMAL mode.
If you make a mistake and perhaps lose some valuable information hit
<alt> rather than <cr> and your data will reappear as if by magic.
Some useful line editing commands are:
α<space> Move the cursor to the right 1 space.
α4α<space> Move the cursor 4 spaces to the right.
α<bs> Move the cursor to the left 1 space.
. α5α<bs> Move the cursor 5 spaces to the left.
α<tab> Move the cursor to the end of the line.
α<form> Move the cursor to the start of the line.
αS then <char> Move the cursor to the next occurance of <char>.
α3αS then <char> Move the cursor to the 3rd next occurance of <char>.
αD DELETE a character and move the rest of the line to the
left. If at the end of the line, this will append the
next line to the current. ETV will prevent this from
being done if the resulting line would be too long for
the line editor.
β<bs> Delete the character to the left of the cursor position.
<bs> BACK SPACE, deletes like β<bs> if at the end of the line,
otherwise just moves the cursor to the left like α<bs>.
αK<char> KILL the line starting with the cursor position up to but
not including the character typed. Do nothing if the no
such character is found.
α4αK<char> KILL the line up to the 4th occurrance of the character.
β<char> Make room and insert <char> ahead of the cursor
position.
β<cr> Insert a carriage return and stay in LINE-EDIT mode.
β<vt> DON'T, at least not until you know better, or until a bug
in E gets fixed.
αI Enter INSERT mode (like holding META down continuously).
Everything that you type (including carriage returns)
will be inserted until you type another line command.
Any LINE-EDIT command will cause one to leave the INSERT
mode, for example, the α<space> command.
<cr> Leave LINE-EDIT mode, accept the line and move CURRENT down.
α<cr> Leave LINE-EDIT mode, accept the line, do not advance CURRENT.
α<vt> Leave LINE-EDIT mode, accept the line and move CURRENT up.
<alt> Restore the line to it original condition and leave the
LINE-EDIT mode.
⊗↑ Accept the line, then move to the end of the previous line.
⊗3⊗↑ Accept the line, then move to the end of the third previous
line.
⊗↓ Accept the line, then move to the end of the next line.
⊗6⊗↓ Accept the line, then move to the end of the sixth line
forward.
⊗; Accept the line, then edit the previous line from the same
display position as that from which this command was given.
⊗3⊗; Accept the line, then edit the third previous line from the same
display position as that from which this command was given.
⊗: Accept the line, then edit the next line from the same
display position as that from which this command was given.
⊗6⊗: Accept the line, then edit the sixth line forward from the same
display position as that from which this command was given.
The above commands work in both NORMAL and LINE-EDIT modes.
The following command works only in the NORMAL mode but since it
enters the LINE-EDIT mode it is best explained here.
⊗Q Insert a copy of the line just above CURRENT and open it
for editing (i.e. enter LINE-EDIT mode).
If you are editing a line and type something that the line editor
does not understand it will usually ignore the error (after thinking
about it for a moment) but don't bank on this too heavily because it can
fail.
If you type a legal ⊗ command (some are forbidden) when in LINE-EDIT
mode the line will be accepted as edited and the command will be carried
out.
(Typing ⊗. in LINE-EDIT mode returns to LINE-EDIT mode automatically
without writing the page.)
The α<cr> command, that works to recall a line from the system buffer
in the system's monitor mode, is replaced by the αQ command as described
above.
Attach and Copy commands: ⊗A ⊗C
The ATTACH and COPY commands permit blocks of lines or copies of them
to be moved up and down on the page or from page to page, as desired.
The ATTACH command removes one or more contiguous lines of text from
the core image of the page and places them in a special attach buffer.
The lines are still displayed on the screen in their original position.
Note that if more than 8 lines are attached, then only the first 4
lines and the last 3 lines are shown so that one can see a few lines
both before and following the attached lines to be certain as to their
relationship to the rest of the page. The attached lines are marked by
vertical bars (thus |) at the left.
The apparent position of the attached lines can be made to move up
or down on the page or from page to page with the usual CURRENT-moving
commands to prepare for a final command which will deposit the attached
lined back into the core image of the text at the indicated position.
Perhaps this can be made clearer by remarking that the CURRENT line
designation is actually attached to the line following the section of
text that has been removed (although the → does not appear). What one is
actually doing when one appears to be moving the attached lines is to
move CURRENT around and E cleverly always displays the attach buffer on
the screen just above CURRENT, where it will in fact be put if one gives
the deposit-line command.
Basic commands.
⊗A ATTACH the CURRENT line and mark it with a "|".
⊗3⊗A ATTACH 3 lines starting with CURRENT and mark these with "|'s".
If a number greater than 8 is used, (for the 3 in the example),
only the first 4 and the last 3 lines are shown. A row of dots
is used to indicate that some attached lines are not shown.
⊗E Deposit the attached lines where displayed and Exit ATTACH mode.
Note: this command has a different meaning when one is NOT in
the ATTACH mode (it then means EXIT from E). Don't stutter when
typing it. Give the system time to react.
αβR REPLACE the attached lines in their original location and leave
the ATTACH mode. CAUTION, this does not work correctly if you have
switched files, so be careful.
αβK KILL the attached lines (they go away beyond recall) and exit
from the ATTACH mode. Note that αK does not work (for safety).
If you make a practice of using the CONTROL key only, when in
the ATTACH mode, (when it works) you will avoid the danger of
accidentally killing an attachment, if you mean to hit a J or
an L and hit a K instead.
⊗C Make a COPY of the CURRENT line and ATTACH this copy.
If there is already something in the ATTACH buffer when this
command is given then the entire attachment will be deposited and
re-copied. This provides a convienent method of making
multiple copies of any desired portion of text.
⊗5⊗C Make a COPY of 5 lines starting with CURRENT and ATTACH these.
Relative arguments.
Relative-argument commands add or remove lines from the end of the
attach buffer thus:
⊗+⊗A Attach 1 more line beyond those already attached.
⊗+⊗3⊗A Attach 3 more lines beyond those already attached.
⊗-⊗A Detach 1 line from the end of those already attached.
⊗-⊗2⊗A Detach 2 lines from the end of those already attached.
⊗+⊗C Copy 1 more line beyond those already attached.
⊗+⊗4⊗C Copy 4 more lines beyond those already attached.
⊗-⊗C Delete (kill) 1 line from the end of the attached set.
⊗-⊗2⊗C Delete (kill) 2 lines from the end of the attached set.
If the apparent position of the attached lines have been moved before
these relative-argument commands are given then additions and deletions
are made in terms of the apparent new location. This gets a bit hairy in
the case of deletions but it is a very useful device for assembling a
set of copied lines from several different places.
Note that a single attach command is only effective to the end of the
current page, and an attachment is deposited all on the same page.
A word of warning, a hazard is involved in using ⊗A to move lines
from page to page. The attached lines can be lost if the system should
crash during the interval between the removal of the attached lines from
one page and the final updating of the page to which they are moved.
This hazard can be avoided by copying the lines rather than attaching
them and then going back and deleting the original copy. This
precaution is hardly necessary for a line or two but it is a wise one
when you are moving large blocks of text.
Moving lines from page to page takes time, so don't get impatient.
This is a good place to comment on the RIPPLING report, that you may
have noticed in the scratch-pad lines at the bottom of the screen. This
notice appears when a major rearrangement of the text between records
becomes necessary. This also takes time.
LINE-INSERT mode.
While one can add text at the bottom of a page by simply moving the
CURRENT marker so that it appears to point at the bottom row of
asterisks (not to dots), a special mode is used to insert lines of
text at other points. As a matter of fact it is usually better to enter
this special LINE-INSERT mode if one is to type several lines even when
at the end of a page.
When in the LINE-INSERT mode, typing a carriage return, inserts the
carriage return into the text, writes the line into the core image and
enters the LINE-EDIT mode for the next line to be typed. Care must be
taken to leave the LINE-INSERT mode properly or else undesirable letters
may appear in your text.
The fact that the editor is in the LINE-INSERT mode is signalled by a
double arrow CURRENT line marker ↔ in place of the right arrow →.
To enter the LINE-INSERT mode:
αβ<cr> Enter LINE-INSERT mode, insert a blank line ahead of the text
at CURRENT and mark the new line with the double arrow ↔. If
you are in the middle of a line, this will break the line into
two separate lines, with the ↔ at the start of a blank line
between these two separate lines as newly created.
While in LINE-INSERT mode:
<cr> Accept the line and move the ↔ to a newly inserted blank line.
α<cr> Leave the LINE-INSERT mode and accept the line in question.
αβ<cr> Insert a blank line (if given at the start of a line). If you
are in the middle of a line, this will break the line into two
separate lines, and position the cursor to be ready to accept
text on an inserted blank line between the two portions. If
you are at the end of a line this will be accepted as a simple
<cr> as above.
αβ<bs> Leave the LINE-INSERT mode but move the → back to the line a-
head of the accepted line.
<alt> Delete the line being typed and leave the LINE-INSERT mode with
the arrow pointing to the next line.
Handling very long lines. XBREAK and XJOIN.
XBREAK will break lines at any specified column position by inserting
CRLFs. The column position may be specified by a numeric argument
following BREAK; the default BREAK column is originally 80 but any
typed-in column argument overrides this and is sticky. The command
takes effect starting with the current line (as marked by the arrow)
or with the first line of the ATTACH buffer if there is an attach-
ment. The current line position is not changed by this command.
If XBREAK is given WITH a preceding numeric argument, then that many
lines are broken (not, however, extending beyond the end of the page
or attach buffer) and each line is broken as many times as necessary
to prevent any resulting line from being longer than the specified
column argument.
If XBREAK is given WITHOUT a preceding numeric argument, then the
current line (or the first attached line) is broken ONLY ONCE, at the
specified (or default) column position.
The XJOIN command has been modified to join lines without introducing
spaces for deleted CRLFs. XJOIN will take a preceding numeric
argument specifying the number of lines to be joined (default is 2
lines). XJOIN takes effect at the current line or at the first line
of the ATTACH buffer and does not cross page boundaries. The current
line position is not changed by this command.
Thus XBREAK and XJOIN can be used together to manipulate, and to
allow editing of, very long lines because these commands do not
change any text in affected lines except for the deletion or
insertion of CRLFs.
SEARCH (or FIND) commands: ⊗F ⊗XFIND ⊗*
The search can be specified in several different ways:
1) The search can be for an alphameric string that is separated from
the rest of the text by non-alphameric characters or it may be for any
string regardless of its surroundings. Note that no distinction is made
between upper and lower case. The FIND command does not find the very
first string on the line to which the cursor is pointing.
For single-page searches the commands are:
αβFSmith<cr> Find just plain Smith or smith but not this string in
in $smith, in blacksmith or in Smithsonian. Note that
% and _ are accepted as alphamerics.
αFSmith<cr> Find smith as an isolated word or as a part of a long-
er string (in blacksmith for example). The string is
no longer limited to alphamerics but use care because
there are still some bugs in E.
Note that no space is used between the F and the start of the string.
For multi-page search commands are:
αβXF Smith<cr> Find a delimited string.
αXF Smith<cr> Find the string regardless of surroundings.
Note that CONTROL and META keys are not used with the F and that a
space is required between the F and the string. Commands starting with
the letter X are EXTEND commands which permit more than a single
character to be used for the command name, hence the need for the space
to mark its end. In this case the complete command name is FIND, but,
since there are, at present, no other commands beginning with F, only
the F needs to be typed.
Multi-page searches, made on files entered /N, are carried only as far
as the core directory has been extended. To search the entine file, one
should first extended the directory by switching to the last page and
then switching back to the desired starting page.
A string, once specified, is sticky, that is one need not retype the
string for a repeat of the command. The search string for a within-a-page
search is remembered independently from that for an EXTEND search. For a
repeat one repeats the command up to the string itself and then types the
desired termination (a <CR> as shown above, or any termination listed be-
low).
Special repeat commands exist which simplify the repeated search.
These are easier to use than the regular repeat command, described
above, but only the last executed type of FIND can be repeated. Two of
the more commonly used terminations are simulated by using different
control keys with the * command symbol.
αβ* Find the next occurence of the string specified by the
last FIND command (whether a single page FIND or a multipage
XFIND). Move the line cursor to the found line but do not enter
the LINE EDITOR, that is, duplicate a normal FIND command that is
terminated by a <CR> only. An argument may be used (such as
αβ1αβ3αβ*) to find the Nth occurence (the symbol ∞ counts as 510).
α* Find the next occurence of the string specified by the
last FIND command (whether a single page FIND or a multipage
XFIND). Leave the line in the LINE EDITOR as it would be for a
normal FIND command terminated by a <CONTROL><CR>. If there is
something in the ATTACH buffer, this is interpreted as an αβ*
command. See below for method of using an argument.
αβ4α* Find the fourth occurence of the string specified by
the last executed FIND command (whether a single page or a
multipage XFIND) and position the cursor under the first character
of the found string (as it would be for a normal FIND command that
is terminated by a <CONTROL><CR>). Note that both control keys
should be used with the argument to prevent interference troubles
with the LINE EDITOR. This precaution is particularly important if
the argument is typed while the last found line is in the LINE
EDITOR.
2) The following special symbols may be used in the search string
with the meanings noted. If these characters are desired as ordinary
characters in the searched-for string they must be preceeded by the
identity symbol ≡.
Symbol Meaning
¬ The character that follows must not be in the string at
this point but any other character will be accepted.
| Any deliminitor.
∀ Any character.
≡ The character that follows immediately after this symbol
is not to be treated as a special symbol but it is to be
included as a character in the searched-for string.
∞ Not at present implemented.
⊂ Not at present implemented.
3) The action that is to be taken on the successful termination of
the search is specified by the delimiter used to terminate the string.
The <cr>, used above, moves the → to the found line. A repeat of the
Find command, if given, will start with this same line, but after the
found string,, so that multiple occurances of a string within a line can
be found.
Accepted action-defining delimiters are:
<cr> Move CURRENT to the found line or report failure.
α<cr> Terminate, as with <cr>, but move the cursor until it is
under the first character of the string. Note that this
leaves E in the LINE-EDIT mode. A second FIND command can
however be given and the next occurance will be found. If
a FIND command is terminated with <cr>, a α<cr> will still
move the cursor to the string.
⊗J JUMP the line with the found string to the top of the
window.
αβ<cr> Enter the LINE-INSERT mode with the ↔ at a newly inserted
blank line ahead of the found line.
αP Make the search over the directory page and then display
the referenced page with the line pointer at the top line.
Note that one can give this command without having to
give an explicit command to go to the directory page.
If the search fails the current location is unchanged.
αβP Make the search over the directory page and then display
the referenced page with the line pointer at the second
occurance of the referenced string (the first will be in
the first line of the page).
⊗A ATTACH all lines starting with CURRENT up to and including
the line with the specified string.
If used with an EXTEND command and if the string is not on
the windowed page, the attachment will begin at the top of
the page on which the string is found.
Attachments do not cross page boundries.
⊗C COPY all lines starting with CURRENT up to and including
the line with the specified string.
See ⊗A above for restriction with an EXTEND command.
αβD DELETE all lines beginning with CURRENT up to but not
including the line with the specified string.
See ⊗A above for EXTEND command restriction.
This is a very dangerous command so use it with caution.
⊗\ Terminate the searched-for string and prepare to accept a
substitution string. The substitution string is then typed
in and may be terminated in any one of several ways. For
details see String Substitution Commands on the next page.
Note that there is a special repeat command for this case so
do not try to use the repeat conventions that are used for
simple searches.
<alt> Abort the present command and cancel the string specification.
4) The search can be for the first occurance of the specified string
or for the n'th occurance.
⊗3⊗Fsmith<cr> FIND the 3rd occurance of SMITH.
5) The <ESC>I command will terminate any FIND in progress at the end of
the page on which it happens to be searching, and it will report this page
number. This command is not intended for use with a single page F command
and it may give an incorrect message in this case on the termination of a
normal search.
SUBSTITUTION commands: ⊗\
String substitution commands are initiated by first giving a normal FIND
command but using the special string terminating character \
(back-slash), typed with both the <META> and the <CONTROL> keys
depressed. This is then followed by the substitution string which, in
turn, is terminated by either a simple carriage return (which may be
preceeded by an argument, typed with control keys) or by <CONTROL><CR>.
Note, many of the otherwise acceptable Find command terminations are not
meaningful with the substitution commands and are not allowed.
Characters in the searched-for string that are preceeded by the special
control symbols ¬ and ≡ and all characters that are represented by the
special symbol ∀ or by the symbol | (see p. 13 for the explanation of
these symbols) are treated as any other character and are deleted and
replaced by the substitution string. The "partial definition feature"
as implemented in SOS is not, at present available.
Note. The FIND command does not find the very first symbol on the line
to which the cursor is pointing.
This limitation is of little consequence for the simple FIND but it
is an annoyance if one wants to replace all occurances of a symbol
(or string) which happens to be the very first symbol (or string) on
a page. One can introduce an initial space into the first line or
one can introduce an initial blank line temporarily and have the
cursor at this line. The space or line can then be removed after the
substitution.
In the rest of this write-up "all occurances" means "all except the very
first character or string on the line to which the cursor is pointing at
the time that the command is given".
Sample commands.
αβFSTRINGαβ\"String"αβ∞<CR> Find all occurances of the string
STRING, whether typed in lower or upper case
letters and replace them by the substitution
string as typed, that is, enclosed in quotes and
with the initial letter only in CAPS. Limit the
search to the current page starting at th cursor
location.
αXFIND ←αβ\ <BACK ARROW> α<CR> Find the first occurance
of the character ← whether on the current page
or a subsquent one and replace it by the string
<BACK ARROW> (including the < and >) and with
spaces introduced before and after these
characters. Leave the resulting line in the
Line-Editor.
The <CR> termination is the faster mode of operation in that it makes a
minimum use of the line editor and it is recommended. This mode does
have one defect in that the substitution is completed and is not subject
to the simple <ALT> method of aborting a single line correction. When
the <CONTROL><CR> termination is used the substitution is made via the
Line-Editor and the results are left in the Line-Editor's buffer so that
the substitution may still be aborted by the usual <ALT> command.
The usual rules apply to the specification of the searched-for string.
The substitution string may, however, contain certain delimiters (spaces
in particular) whether or not the search is for a delimited string and a
distinction is made between upper and lower case letters. Only the
searched-for letters without delimiters are replaced. To be specific, if
one were to replace a delimited string by a null substitution string,
the two delimiters would remain in the corrected text.
The substitution string is sticky, so that a substitution command, when
successfully executed for a single occurance, may be repeated for the
next occurence by typing αβ\ only. The typing of a new string for the
searched-for string destroys the record of the previously saved
substitution string and the entire request must be retyped before this
command will be honored.
A null substitution string may be used but only after confirmation has
been requested and received. The substitution will also be restricted to
a single occurance. It may then be repeated as many times as desired by
the usual repeat command with the desired argument. These precautions
can be removed if users find them bothersome, but it was thought wise to
put them in at first.
Multi-page substitutions are useful but potentially dangerous as the
substitutions made on any one page are, of course, written out onto the
disk file when ever a new page is entered.
As noted earlier, typing αβ\ after a successful single substitution will
repeat the substitution. This command may be preceeded by an argument
(with control bits) and the substitution will be repeated the specified
number of times. Should substitutions occur on more than one page, all
substitutions on pages earlier than the last page will have been written
out.
The use of the command α\ rather than αβ\ is also allowed but is not
recommended. This leaves the altered line in the line buffer with the
possibility of an <ALT> abort.
Sample repeat commands.
αβ\ Repeat the previously made substitution at the next
occurance of the searched-for string using the faster
and safer mode which does not leave the results in
the Line-Editor buffer.
αβ6αβ\ Repeat the substitution for the next 6 occurances.
α\ Repeat the substitution once but leave the results in
the Line-Editor buffer.
FILE-SWITCHING and text transfering commands: ⊗ε ⊗λ ⊗H ⊗∃ ⊗?
The file switching commands <CONTROL>ε and <CONTROL>λ when followed
by the name of another file name replace the existing file by the newly
specified one while retaining the contents of the ATTACH buffer, thus
allowing one to copy or move text from one file to another file. The ε
command (ENTER) opens the new file in read-write mode while the λ
command (LOOK) opens the file in read-only mode. Most of the usual file
switches, for example, /C (to create a new file), may be used with these
commands.
As different files are referenced, each file is assigned a number
which can be used thereafter as an argument to the ε or λ command to
call the desired file without retyping its name. When files are called
by number they are positioned at the last referenced page and line. Any
previously existing line marks are also restored. Switches are not used
with number-referenced commands. The command character itself activates
the command directly.
Eight different files may be so referenced. Should one reference a 9th
file, the least-recently-used file in the list is automatically replaced
by the newly referenced file. The user is warned of this replacement.
The list of files with their referencing numbers can be displayed as
a mnemonic aid by the command <CONTROL>∃.
The usual switches (see p. 19) may be used with the file switching
commands when the file name is typed directly. Some, but not all of
these switches are remembered and are re-invoked when files are
referenced by number.
The previously referenced file (unless it be the E-manual file) is
considered to be the HOME file and can be recalled by typing <CONTROL>H.
It is reentered in its previous read-write condition and at the last
referenced page and line. On returning from the E-manual file (see
below) the home file conditions that existed before going to the
E-manual are reestablished, that is, if you had switched from file A to
file B then to the E-manual, the first H command would return you to
file B and the next H command would take you back to file A. Repeated H
commands thereafter would switch you back and forth between file A and
file B.
The HOME command will accept an argument to over-ride the default
argument and return either to the the specified page or if a signed
argument is typed to a page relatively located with respect to the
earlier referenced page.
Finally it is possible to reference the E-manual file, E.ALS[UP,DOC],
by typing <CONTROL>? . The first reference to this manual will be to
page 2 which contains information on recently made changes to E.
Thereafter it is entered at the last referenced page and line. One may,
however, over-ride these default values by typing an argument to specify
a particular page, or, by typing a signed argument, to specify a
relative page number from the previously referenced page.
Difficulties may be experienced in copying and moving information
from unformatted files and from files without directories particularly
if many lines are to be moved. Requests if files may be formatted should
be honored usually unless this is known to be undesirable. ETV is smart
enough to detect most cases when one tries to format a binary file or an
XGP file and it will tell you this and give you another chance to say NO.
If one attempts to move information TO an unformatted file, the material
in the ATTACH buffer may be lost.
Also do not try to use the <CONTROL>R command when you have switched
files with something in the ATTACH buffer or the attached text will be
put in your current file at the page and line corresponding to where it
came from but in the wrong file. This will be fixed some day.
Commands
⊗ε<file name><cr> Close the current file and open the specified
file in read-write mode. The usual switches /#P, /#L and
/C may be used.The new file is assigned a serial number by
which it may be called later. (The initial file is
numbered 0). When called by number the display is returned
to the last referenced page and with the arrow on the last
referenced line and all previously set line marks restored.
⊗3⊗ε Reopen the file assigned the serial mumber 3 in read-write
mode. Note that no carriage return is used in this case.
Return the display to the last referenced page. Return the
arrow to the last referenced line and restore all previous
line marks. (Use the ⊗∃ command, below, to find numbers).
⊗λ<file name><cr> Close the current file and open the specified
file in read-only mode. The usual switches /#P and /#L
may be used. The new file is assigned a serial number by
which it may be called later. (The initial file is
numbered 0).
αβ3⊗λ Reopen the file assigned the serial mumber 3 in read-only
mode.
⊗∃ List the previously referenced files with their serial
numbers. For convenience the letter H replaces the number
in the listing of the "HOME" file and a "]" is used rather
than a ")" for the file currently displayed.
⊗0⊗∃ Move the current-file listing to location zero and flush
all other listings (to make room for more).
⊗H Return (HOME) to the last referenced file. The E-manual
file is not considered a HOME file.
⊗2⊗0⊗1⊗H Return (HOME) to the last referenced file on page 201.
The E-manual file is not considered a HOME file.
⊗-⊗2⊗3⊗H Return (HOME) to the last referenced file on a page
that is 23 pages earlier than the last referenced page.
The E-manual file is not considered a HOME file.
⊗? Close the current file and open the E manual file
E.ALS[UP,DOC] on the directory page, or, if it has been
referenced earlier, to the last referenced page and line.
page and line.
⊗8⊗? Close the current file and open the E manual file
E.ALS[UP,DOC] on page 8.
⊗-⊗2⊗? Close the current file and open the E manual file
E.ALS[UP,DOC] at 2 pages before the previously referenced
page.
⊗XJUST ⊗XJFILL ⊗XCENTER ⊗XJOIN MARGIN CONTROL commands:
(See p. 17 for ⊗XALIGN, ⊗XINDENT, ⊗XJLEFT).
The JUST and JFILL commands are useful for doing left-margin, and/or
right margin justification. The first line of each new paragraph may
also be indented with respect to the body of the paragraph. These
commands apply to the ATTACH buffer when they are given while in the
ATTACH mode. They may be limited to a specified number of lines or they
can apply (by default) to the entire ATTACH buffer or to the entire page.
These commands take two different types of arguments, an initial
argument which specifies the number of lines to be handled, and a
following string of numbers separated by commas to define the paragraph
first-line margin, the left margin, and the right margin. Any or all of
these arguments may be omitted, if commas are used to denote omitted
values in the margin specifying string.
The default option as to the number of lines is the full page or the
full ATTACH buffer for the JUST AND JFILL commands and it is one line
for the CENTER command. The default options as to the margin
specifications are originally set to 1,1,69 for paragraph first line,
normal left margin and right margin. The margin default values for the
margins may be changed by "sticky" commands, as noted below.
JUST and JFILL recognize the first line of a paragraph either by the
fact that the paragraph is preceded by a blank line or by the fact that
the first line begins with a TAB or with a period. TABs and periods,
when so used, are retained during the JUST or JFILL operation if the
first-line left margin is specified as one, otherwise they are deleted
and replaced by the required number of spaces. It should be noted that
these spaces will not be recognized by ETV as the start of a new
paragraph during a subsequent JUST or JFILL operation.
The first line of the total text is not automatically treated as a
first line of a paragraph. This restriction is actually rather arbitrary
and could be changed. It was adopted because it seems unwise to indent
page headings and one frequently wants to fix up the end of a paragraph
with out having to rejustify the entire paragraph. One can always indent
the first line of a block of text when a limited number of lines is
specified by starting the justification with a blank line preceding the
block or by using a TAB or a period as the first character.
The CENTER command differs from the JUST and JFILL commands in that
no filling is done and in that the default argument is one line rather
than the entire page except when in the ATTACH mode when it is the
entire ATTACH buffer. It is similar to these other commands in its use
of the same left and right margin values and in its following of the
same conventions for the specifications of these margins. Should an
attempt be made to center a line that is too long to fit within the
specified margins, the line is simply pushed as far left as possible.
Margin specifications:
Margin specifications may be made applicable to only a single command
with the default value unchanged, by using the CONTROL key only, before
the X, or they may be made to alter the default values as well, by using
both the CONTROL and META keys.
The complete specification is in the form <first line>,<left
margin>,<right margin> However, any combination af these numbers may be
omitted as long as the necessary commas to prevent ambiguity are
included.
To change the paragraph indentation alone, it is only necessary to
type a single decimal number (of not more than 3 digits) to specify an
absolute position. If the number is preceded by a plus or minus sign it
then specifies a relative first line indentation from the current left
margin value. A subsequent modification to the left margin will alter
the paragraph indent value so as to maintain the same indentation from
the body of paragraph.
To change the left margin specification alone, it is only necessary
to type a comma followed by the desired decimal value. In this case the
paragraph indentation remains fixed, rather than its absolute value. Of
course if the paragraph margin value is specified in the same command
string then this value will not be altered, the absolute specification
in this case will over-ride the usual rule.
To change the right margin alone, it is necessary to precede the
decimal number by two commas.
Typical command strings.
⊗XJUST<cr> Justify the current page (or the ATTACH buffer if in
ATTACH mode) using the default values for the initial
line left, regular left and right margins.
Margins are initially set to 1,1,69.
Typical commands.
αXJUST +3,4,66<cr> Justify the current page or the ATTACH buffer
using temporary margins as specified (in this example
to 7, 4 and to 66 respectively).
αβXJUST ,4,66<cr> Justify the current page or the ATTACH buffer
using new sticky margins as specified. These new
values now become the default values. The paragraph
indentation will be left at the previously specified
value.
⊗13⊗XJUST<cr> Justify 13 lines starting with CURRENT. May
be combined with margin specifications, which may be
may be made sticky or temporary as desired.
⊗XJFILL<cr> Redistribute text between lines as if to justify, but
but do not pad lines out with blanks. (see ⊗XJUST<cr>
above for conditions).
⊗XCENTER<cr> Center the CURRENT line or first line,if in the ATTACH
mode, between the default values for the regular left
and right margins.
⊗4A⊗XCENTER<cr> Attach 4 lines and Center the first line only.
⊗4A⊗3⊗XCENTER<cr> Attach 4 lines and Center the first three lines.
⊗XALIGN ⊗XJLEFT ⊗XINDENT ⊗→ ⊗← Other MARGIN CONTROL commands:
(See p. 16 for ⊗XJUST, ⊗XJFILL, ⊗XCENTER, ⊗XJOIN.)
These commands preserve the identity of the text lines while
preforming certain operations on their left margins.
ALIGN deletes all leading spaces and TABs and moves the specified
lines (with the entire page or ATTACH buffer as the default option) so
that all lines start at the specified location. Accordingly it takes
only a single margin specification which may be designated as sticky or
as temporary. ALIGN replaces all interior TABs with spaces before the
lines are moved. This has the effect of preserving the original TAB-
specified spacing thus permitting tables to be shifted right or left by
any desired amount without losing alignments. As a safety feature,
lines which would extend beyond column 120 (the capacity of the line
editor) are only moved as far as can be done without exceeding this
limit. The default alignment position is column 1.
JLEFT is not implemented at present. The next paragraph describes
the intended implementation.
JLEFT does not replace interior TABs so that portions of a line
beyond a TAB will still be at TAB boundries (although not necessarily
the same one). This allows code to be moved to the right or left a small
amount without changing the position of the associated comment.
INDENT simply moves the specified number of lines (default value of 1
except when in the ATTACH mode when it is the entire ATTACH BUFFER) to
the right or left by the specified amount independent of their original
starting positions. This permits blocks of code to be moved right or
left while preserving their original relative indentations. INDENT takes
one differential margin specification, (to the right or minus if to the
left) subject to the restriction that lines are never moved far enough
to move off of the allowed page (beyond position 1 to the left and
position 120 to the right). The indentation specification may be
designated as sticky or as temporary. The initial default indentation
value is 4.
The commands ⊗→ and ⊗← are special cases of INDENT. They move the
specified lines to the right or left by one position. The default
number of lines is one if not in ATTACH mode or it is the entire ATTACH
buffer. They work only in the NORMAL and ATTACH modes and do not
require a ⊗X or a carriage return. In common with INSERT they limit the
text motion to the range from column 1 to column 120.
Typical commands.
⊗XALIGN<cr> ALIGN the entire page (or entire ATTACH buffer if in
ATTACH mode) with all lines moved to start with the
default ALIGN margin (originally set to 1).
α4αXALIGN 5<cr> ALIGN 4 lines starting with CURRENT (or with
the start of the ATTACH buffer if in ATTACH mode)
to a left margin starting in column 5.
αXINDENT<cr> INDENT the CURRENT line (or the entire ATTACH buffer
if in the ATTACH mode) by the default value (set to
4 initially), but do not let any line move far enough
to be moved off the page.
α6αXINDENT 3<cr> INDENT 6 lines starting with CURRENT by 3,
with this as a temporary specification only.
α6αXINDENT -3<cr> INDENT 6 lines starting with CURRENT by -3,
(that is move them to the left by 3 positions)
with this as a temporary specification only.
αβ8⊗XINDENT 3<cr> INDENT 8 lines starting with CURRENT by 3,
with the new default value being set to 3.
⊗→ Move the CURRENT line or the ATTACH buffer contents
to the right by one position if this can be done
without the text going beyond column 120.
While it is also possible to specify a desired
number of lines to be indented by giving an initial
argument without entering the ATTACH mode, this
fails to work correctly if any of the lines beyond
the first one start with TABs.
⊗← Move the CURRENT line or the ATTACH buffer contents
to the left by one position if this can be done
without going beyond column 1, that is without losing
any non-blank characters.
⊗6⊗→ Move 6 lines starting with the CURRENT line or with
the start of the ATTACH buffer to the right by one
position if this can be done without the text going
beyond column 120.
Other EXTENDED commands: ⊗X<cmd>
Certain commands are potentially too dangerous to be safely evoked by
a single character. There are also more commands than can be obtained
with single characters. These contingencies are handled by the EXTEND
command specified as follows:
⊗X Accept the string which follows as a command. This
string may be abbreviated as long as no ambiguity
results. The string must be terminated by a space
if parameters are required, or by a <cr> or some
other delimiter.
The EXTEND form of the FIND command has already been discribed. In
this case only a single letter needs be used, but any partial string up
to the complete word FIND is acceptable. The ⊗XJUST and ⊗XJFILL
commands (see p. 16) are perhaps more typical.
EXTEND commands.
⊗XBACKGO Go back to the last page referenced just before
the one now being viewed.
⊗XFIND See p. 13 for details on FIND.
⊗XJUST<cr> Justify the current page (or the ATTACH buffer
if in ATTACH mode) using the default values for
the paragraph, left and right margins. Margins
are initially set to 1,1,69. For elaborations on
this basic command, see p. 16.
⊗XDRAW<cr> Redraw the complete screen. Used when unwanted
marks show on the screen from whatever cause.
(This does the same thing as ⊗V).
⊗XMARK<cr> Insert a page mark between the CURRENT line and
the line above it and display the new page.
CAUTION * * Do not try to use this command when
the arrow points to an empty line or when it is
pointing to the row of asterisks at the bottom.
This may appear to work but it can also cause a
discrepancy to occur on the directory page that
can cause you real trouble later. So don't do
it. Instead, type the line that you want to be
at the top of the new page at the bottom of the
existing page, and put th mark before this line.
⊗XDELETE<cr> Delete the page mark between this page and the next.
Note that using this command just after a ⊗XMARK
command does not undo the newly inserted mark
but it does delete the next mark.
⊗XCANCEL<cr> Do not write out the current page but instead
reread it in from the disk.
⊗XPROTECT<cr> Display the protection key for the file
being edited.
⊗XPROTECT 111<cr> Change the protection of the file being
edited to the octal value that is typed (in this
case to 111, coresponding to write protection
against all users). Only 3 octal numbers may be
given. An attempt to change the protection of a
file that is protection protected againt the user
will not be honored.
⊗XSPOOL<cr> SPOOL the core image of the current page, or the
ATTACH buffer if something is attached, without
writing it out on disk in the normal way. This
allows you to keep a copy of changes that you
have made whether or not you intend to
incorporate them into the disk copy of the file
that is being edited. The spooler copy of the
page is deleted as soon as it has been printed.
The printed copy carried the same header
information as it would have carried had it been
spooled in the usual way.
⊗XXSPOOL<cr> XSPOOL the current page under the conditiond noted
above.
⊗XREADONLY<cr> Inhibit any further writing of the file.
⊗XREADWRITE<cr> Disable the write-inhibit.
⊗XGO<cr> Exit from E and repeat the last RPG command.
⊗XDDT<cr> Branch to RAID if it is present. αP returns.
⊗XAPPEND<cr> Read in an additional page after the current
one so that the two may be edited together.
Effect is undone by ⊗XCANCEL<cr>.
Caution: there is a bug in this command and besides
it increases core size unnecessarily so use with caution.
XLINCNT<cr> Type the current line number and the number of lines
in the current page.
(Useful formatting information).
⊗XCLOSE<cr> Close the file. This allows others to read it
if you had modified it.
⊗XDIRED<cr> Same as ⊗XRSYS DIRED
⊗XDPYALWAYS<cr> Always re-display text after each command.
⊗XDPYSKIP<cr> Don't re-display text if there are typed-ahead
commands to be executed. (normal mode)
⊗XINSERT<cr> Same as β<form>; insert a page mark line.
⊗XPPSET<cr> Reset screen position of page printer (the three
lines at the bottom of the screen which echo commands).
⊗XQUIT<cr> Same as ⊗XCANCEL followed by ⊗E
⊗XRSYS PRGM<cr> Exits and runs SYS:PRGM
⊗XRUN PRGM<cr> Exits and runs DSK:PRGM
⊗XTV<cr> Starts TV editing the same file E was, in the same place.
⊗<n>⊗XTYPE<cr> Types n lines starting at CURRENT and moves CURRENT
past those lines. Primarily useful from
non-display terminals.
System commands to evoke E and SWITCHES permitted after filenames.
Basic commands
CETV <filename and switches><cr>
Create a new file with the name and extension as
specified by the filename. The file will contain a
directory page (unless /N appears among the switches)
and one blank page.
ETV <filename and switches><cr>
Edit with the specified file with E. If the file has
but one text page, display this, otherwise display the
directory page.
ETV <cr>
Edit with E the most recently edited file and display
the most recently opened page.
ETV <filename1>←<filename2><cr>
Copy the file named <filename2> into a new file named
<filename1> and then edit <filename1> with E. If
<filename2> has a valid directory, this command is
executed relatively rapidly; if not, a new directory
will have to be created.
READ <filename><cr>
Edit the specified file in Book mode (/B) and maintain a
.BKP bookmark file. See Book mode on p. 26.
R E;<filename and switches><cr>
Same as ETV <filename and switches> except that no
TMPCOR file is written when you exit. The TMPCOR file
normally contains the name of the last file you edited
and within that file the numbers of the page and line
from which you exited.
Switches, when used, are strings beginning with a slash which are
placed immediately after the name string that they are to modify.
/C Create a new file with the specified name. This is of
most use when one wishes to create a new file with
the file switching command ⊗ε, perhaps to hold some
attached text from the current file.
/R Open the file in the read-only mode. This is useful
if one wants to examine a file without any danger
of inadvertently modifying it. For example:
ETV TEACH.TXT[UP,DOC]/R<cr>
You can leave read-only mode by using the ⊗XREADWRITE
command. You enter read-only mode with ⊗XREADONLY.
/B Book mode. Edit the file in book mode. In this mode
you are never permitted to alter the file nor are you
permitted to leave this mode. See the explanation of
book mode on p. 26.
/N No Directory. Edit the file without writing a directory
on page one. The directory must be generated from
scratch and the file reformatted each time you edit
the file. The directory is kept in core by E but
never written in the file. There are some bugs in
E's handling of /N mode, but it should work fine
for 1-page files. The inexperienced user is
advised to avoid this mode. The /F and /F/R
switches, as discribed below, are to be prefered.
/F Repage and reformat the file with the maximum page size
limited to the default value of 33 (one screenful on
Data Disc terminals). The F may be preceeded by a
decimal argument to use any desired number instead of
33. Old page marks are retained however, so it is not
possible to increase the page size by this switch and
some pages may be shorter than the specified length.
This switch is particularly useful for getting long
unformatted files into a shape where they can be
handled safely and easily.
/F/R Repage and reformat the core version only without
changing the disk copy. The new directory will be on
page 0 and the old directory (if there is one) will be
kept as a part of the text starting on page 1. Do not
try to use the old directory as it is invalid. This
switch combination is particularly useful for
examining (without altering) unformatted files that
have been produced by programs other than E.
/nP Open the file at page n, where n is a decimal number.
/mL Open the file with the arrow at line m (m is decimal).
The switches may appear all together inside parentheses instead of
separately following slashes. For example: ET MYFILE(R4P5L)<cr>.
Using ETV from a TTY or IMLAC.
Note: This page is currently being composed without my having
confirmed the information that is being recorded. It may be
greviously in error.
It is possible to use ETV from a no-display terminal. Of
course, some of the advantages of ETV over say SOS are lost but
one may not want to go to the trouble of having switching
editors in mid-stream. As partial compensation for the lack of
display features, ETV provide the TTY user with line numbers.
The lack of CONTROL and META bits does introduce certain
operating difficulties. See the MONITOR COMMAND MANUAL sections
3 and 4.7 for other information of interest to TTY users.
No special action is required of the TTY user to tell ETV that
a TTY is being used. This happens automatically when ETV is
called and the user is informed of this by a special message.
The mode distinction which has been referred to previously is
much more distinct when operation from a TTY. There are two
main modes. Initially, all characters typed to ETV from a TTY
are assumed to be commands, that is the character is read by E
as if it had been typed with both CONTROL and META keys
depressed. One can, however, enter an INSERT mode by typing the
character I and then everything thereafter (with the exception
of certain preempted control signals) is accepted as text.
The ALT or ESC key is the escape key (octal 175) which returns
one to the COMMAND mode. Because of this usage, the use of ALT
to abort certain ETV commands is seriously impeded.
One is denied the use of the LINE-EDITOR features so that the
only way to alter an existing line is to delete it and type it
in from scratch.
On most no-display terminals, it is not possible to send
commands that require a single Stanford-keyboard control key
(either the CONTROL or the META key only) as contrasted with
those that permit either the CONTROL only or both CONTROL and
META keys.
The control key on the TTY is not at all the same as the
Stanford-keyboard CONTROL key referenced in most of this
manual. Some teletype control characters are part of the
extended character set at Stanford and can thus be typed (see
the complete list at the end of this page).
Some characters cannot be sent at all; their use has been
preempted by the system. When these characters exist in
previously prepared text they will print as shown by the list
below. Note that the form in which they print will depend upon
the terminal that you are using to read the text; an LPT or XGP
output will, of course, be in the Stanford extended character
set. Most terminals use two characters, the first usually
being an up-arrow.
Stanford characters that cannot be sent as text or as ETV
control characters are:
Octal Usual Prints Typed Preempted as a system
name out as in as command used for
002 alpha α <ctr>B type-out pause (toggles)
003 beta β <ctr>C monitor call
017 delta ∂ <ctr>O flush type-out (toggles)
025 there exists ∃ <ctr>U flush type-in
032 tilde ~ <ctr>Z end of file
033 not equal ≠ <ctr>[ altmode
Use of the IMLAC
ETV is more useful from the IMLAC. If you are in command
mode, you have a choice: send the command with no control
bits (it will be interpreted as if it had both control bits
on), or with selected control bits (this is useful for
distinguishing between αM and αβM, which cannot be done from
a TTY).
It is possible to give substitute commands since α\ is
transmittable. However, E does not know about the
line-editor capabilities of the IMLAC and will fail (fatally)
if you try to end a substitute command with α<cr>. It will
merely refuse to comply if you try to enter the line-editor
with, say, α<sp>.
Character equivalences
Code Name Prints Typed Preempted
octal out as in as for
000 null
001 down arrow ↓ <ctr>A
002 alpha α <ctr>B type-out pause (toggles)
003 beta β <ctr>C monitor call
004 logical and ∧ <ctr>D
005 logical not ¬ <ctr>E
006 epsilon ε <ctr>F
007 pi π <ctr>G
010 lambda λ <ctr>H
011 TAB
012 LF
013 VT
014 FF
015 CR
016 infinity ∞ <ctr>N
017 delta ∂ <ctr>O flush type-out (toggles)
020 containment ⊂ <ctr>P
021 implication ⊃ <ctr>Q
022 intersection ∩ <ctr>R
023 union ∪ <ctr>S
024 for all ∀ <ctr>T
025 there exists ∃ <ctr>U flush type-in
026 circle times ⊗ <ctr>V
027 double-arrow ↔ <ctr>W
030 underbar _ <ctr>X
031 right-arrow → <ctr>Y
032 tilde ~ <ctr>Z end of file
033 not equal ≠ <ctr>[ altmode
034 less or equal ≤ <ctr>\
035 greater or eq ≥ <ctr>]
036 equivalence ≡ <ctr>↑
037 logical or ∨ <ctr>←
040 SP
041 exclamation ! !
042 double quote " "
043 number sign # #
044 dollar sign $ $
045 percent % %
046 ampersand & &
047 close s. quote ' '
050 left paren ( (
051 right paren ) )
052 asterisk * *
053 plus + +
054 comma , ,
055 minus - -
056 point . .
057 slash / /
060 digits 0 0
...
071 9 9
072 colon : :
073 semicolon ; ;
074 left broket < <
075 equal = =
076 right broket > >
077 question mark ? ?
100 at sign @ @
101 upper-case A A
...
132 Z Z
133 left bracket [ [
134 back slash \ \
135 right bracket ] ]
136 up¬arrow ↑ ↑
137 left-arrow ← ←
140 open s. quote ` `
141 lower case a a
...
172 z z
173 left brace { {
174 vertical bar | |
175 ALT ALT or ESC
176 right brace } }
177 BS or DEL BS or DEL
PARENTHESIS finding/matching commands: ⊗( ⊗) ⊗XLPAREN ⊗XRPAREN ⊗↔ ⊗XPAREN
This set of commands allows one to check nested sets of bracketing
symbols for matching pairs and for related properties. The search
may be restricted to the current page by using the ( and ) forms or it
may be extended over the rest of the file by the extended commands
XLPAREN and XRPAREN. It always starts from the location of
the cursor at the time the command is given and proceeds in the forward
direction. The nesting level is re-assigned the value 0 at the cursor's
current position for each new command (see special conventions below).
The default symbols are the normal parentheses ( and ). An EXTEND
command <META><CONTROL>XPAREN allows one to define any desired set.
The command itself must be delimited by a space and followed by the
desired two characters and a carriage return. If the desired pair is
from the set →←, ⊂⊃, `', ≤≥, {}, <>, [], then only the first of the set
and a carriage return should be typed. If another set had been chosen
the default set may be reset by typing the setting command with a
carriage return only.
Note, that a space is an acceptable symbol and for this reason extra
spaces are not permitted in the command string. A distinction is also
made between upper and lower case characters so that both may be used.
In the special case when the same character is assigned to both symbols,
the concept of nesting has no meaning and the commands are interpreted
differently, as noted in the special section below.
In what follows, the two symbols of the chosen set wil be refered to
as the left-symbol and the right-symbol respectively.
The normal commands are then <META><CONTROL>( and <META><CONTROL>) .
Each of these may take an argument which specifies the sought-for
nesting level for the region defined by the bracketing symbol. The
default argument is 1 for both commands. The corresponding extend
commands are XLPAREN and XRPAREN.
These commands may be given both when not in the line editor and when in
the line editor. If given when in the line editor the line will not be
written out should the search be unsuccessful or should the search be
successful with the found symbol in the same line. A successful search
that results in leaving the line editor to go to another line will cause
the original line-editor contents to be written.
There is one additional command <META><CONTROL>↔ which, in effect,
un-does the last (, ), XLPAREN, XRPAREN or ↔ command and returns the cursor
to its former position.
Note that the most frequent use of these command will be in LISP
where one wants to find matching parentheses, and hence the use
of ( and ) for the commands and for the default symbols.
SAIL users may find it useful to define an otherwise unused set
of symbols to mean BEGIN and END (some people already use ⊂ and
⊃ for this purpose), and to use these symbols in their stead, at
least while debugging.
Special conventions
A special convention has been adopted to avoid ambiguity for those cases
in which these commands are given while the line-editor cursor is under
one of the searched-for bracketing symbols. This convention is that a
cursor under a left-symbol is presumed to be actually to its left, that
is, outside of the symbol (as it appears) and a cursor under a
right-symbol is presumed to be actually to its right, again outside of
the symbol (and again as it appears).
Arguments, when used with these commands refer to the desired nesting
level within the region defined by the nesting pairs. If no argument is
given, the default value is 1, in accordance with the usual convention
for most ETV commands. As a mnemonic aid, the sought-for symbol is
reported with the argument shown after left-symbols and before
right-eymbols although the argument must always be typed before the
command (to permit the command character, itself, to be used as the
activator).
By convention the starting level is always re-assigned the value 0.
Left- symbols increase the nesting level and right-symbols decrease the
level.
Typical commands
<META><CONTROL>4<META><CONTROL>( Move the cursor to that left-symbol
which would cause the nesting to reach a level of 4, considering the
present cursor position to be at level 0. Do not move the cursor if
this level is not found and report the deficiency. This request is
reported as (4 for the reasons noted above.
Note that <META><CONTROL>( without an argument finds the very first
left-symbol. If the cursor is already at a left-symbol this command is
a NO-OP. This is in consequence of the convention that a cursor under
a left-symbol actually refers to the situation just ahead of the symbol.
<META><CONTROL>XLPAREN is similar in all respects except that the search
is extended to the end of the file.
<META><CONTROL>) If the cursor is already positioned under a
left-symbol, move the cursor to the matching right-symbol. If the cursor
is not under a left-symbol, then search for that right-symbol that
returns returns the nesting level to its initial value of 0. Should the
cursor be under a right-symbol, the initial level is taken to be that at
its right. Note that this command is a NO-OP only for the case where
the desired level cannot be found. This request is reported as 1).
If the end of the text is reached before a transition from level 1 to
level 0 is found, the cursor is left in its original position and the
deficiency is reported along with the other data. Deficiencies, in this
case can be of two sorts, either a level of 1 is never reached or having
been reached and possibly exceeded as a result of left-symbols, a
right-symbol is never encountered while at this level. In the first
case, the deficiency figure is reported following a down arrow (meaning
always below).
<META><CONTROL>3<META><CONTROL>) Search through the text as just
just described but stop at the first right-symbol that reduces the
nesting-level from the specified level, in this case 3. This request is
reported as 3).
<META><CONTROL>XRPAREN is similar in all respects except that the search
is extended to the end of the file.
Interpretation when the same character is used for both symbols.
Both the ( and the ) command, in this case, ignore the symbol that is
above the cursor at the time the command is given and search for the Nth
next example of the specified symbol, where N is the argument that is
used with the command. The ( command is not a NO-OP in this special
case.
Automatic and manual BEEPING upon command completion: ⊗XBEEP
The user may now set a flag that will causes ETV to beep his console
at the conclusion of any command execution taking longer than some
preassigned value of real time.
This flag is now preset to the NO-BEEP condition. If enough users
like the feature the flag can easily be preset to the BEEP condition
with the preassigned value set to any desired number of seconds.
The commands are:
⊗XBEEP Beep me now. This may be typed ahead when ever desired and
you will be beeped on the conclusion of the pending command
execution regardless of how long it takes. This command does
not alter the setting of the BEEP-NO-BEEP flag, nor does it
change the preset timer value. It is a one shot command.
⊗#⊗XBEEP Set the beep flag to the BEEP condition and set the timer
value to # number of seconds (where # is a decimal number).
⊗0⊗XBEEP Set the beep flag to the NO-BEEP condition, without changing
the timer setting (which, of course, will not be used).
⊗+⊗XBEEP Set the beep flag to the BEEP condition without changing the
preassigned timer setting and report this time.
Message handling partial-sign command: ⊗∂<cmd> ⊗0⊗∂
The new partial-sign (∂) command is designed for easy handling of
messages in mail files, but it can be used on any file regardless of
whether the file contains mail-like messages. For instance, this
command is capable of attaching (or deleting) a whole page of text at
once and simultaneously deleting the pagemark for that page.
The ⊗∂ command is a search command used to find the beginnings of
"messages." A message is defined as the largest contiguous set of
lines of which only the first starts with a partial-sign (∂) and the
last of which is followed either by another line starting with
partial-sign or by the end of the page. The current message is
defined as the message containing the current line (the arrow line).
If the arrow is on the row of stars that marks the end of the page,
then the current message is the one that contains the last real line
of the page. (Perhaps later the character which delimits "messages"
will be user-settable, but for now it is always partial-sign.)
Messages are never considered to extend across page boundaries. If
neither the current line nor any of the lines preceding it on the
current page starts with a partial-sign, then the current "message"
starts with the first line of the current page. If none of the lines
(on the current page) below the current line starts with a
partial-sign, then the last line of the current "message" is the last
line on the page. Thus, if there are no lines on the current page
that start with ∂, then the current "message" is the whole page.
Like the ⊗F command, the ⊗∂ command requires a following command
before any action is taken (with one exception, which is noted
below). However, the ⊗∂ command does not accept a search string
before the second command; ⊗∂ always searches for lines beginning
with a partial-sign. If the command following is one of the special
commands that use the number of lines searched (for instance, by the
⊗F command) as the argument to the command, then that command will be
carried out for the entire current message. If the command is not
one of these special ones, then it will be executed at the end of the
current message.
Currently the special commands that use the number of lines searched
as the command argument are: αβD (delete), ⊗A (attach), ⊗C (copy),
XALIGN, XCENTER, XINDENT, XJFILL, XJOIN, XJUST.
The ⊗∂ command may be preceded by a numeric argument which specifies
the number of messages (starting with the current one) which the
command is to affect. If that number is negative, then the messages
just before the current one are the ones effected, with the absolute
value of the argument specifying how many messages.
N.B.: A zero argument to the ⊗∂ commands means move to the beginning
of the current message WITHOUT WAITING FOR A SECOND COMMAND. This is
the only case where a second command is not used by the ∂⊗ command.
!!!!! SPECIAL FEATURE OF THE PARTIAL-SIGN COMMAND !!!!!
N.B.: If the partial-sign command is used with ⊗A (attach) or
αβD (delete) to attach or delete every line on the
current page, then the current page itself, i.e., its
pagemark, will also be deleted. In particular, if the
current page is not the last page in the file, then the
following pagemark will be deleted, leaving you at the
top of that page; if the current page is the last page
in the file, then the preceding pagemark will be deleted
and you will be left at the bottom of the previous page.
However, no pagemark deleting will be done if the file
has only one page besides the directory. And note that
the page deleting only happens when the entire page's
text is either deleted or attached using the
partial-sign command!
If there are already some lines in the attach buffer at the time you
give an ⊗∂⊗A command, the new messages being attached are added at
the end of the attach buffer. If you give a ⊗-⊗∂⊗A command when
there are already lines in the attach buffer, the new messages being
attached are inserted at the beginning of the attach buffer, ahead of
the text already there.
Here are some example uses of the partial-sign command. The ones
marked with an asterisk (*) all involve either αβD or ⊗A and will
delete a pagemark in addition to the action noted if the action
results in an empty page which is not the only page (besides any
directory) in the file.
⊗∂αβD ;* Deletes the current message.
⊗∂⊗A ;* Attaches the current message.
⊗∂⊗C ;Copies the current message into the attach buffer.
⊗-⊗∂<cr> ;Moves to beginning of previous message.
⊗0⊗∂ ;Moves to beginning of current message.
⊗∂<cr> ;Moves to beginning of next message.
⊗∂<vt> ;Moves to end of current message.
⊗∂⊗J ;Moves to beginning of next message and jumps screen up.
⊗∂αβ<cr> ;Enters line-insert mode between the end of the
;current message and the beginning of the next one.
⊗3⊗∂⊗D ;* Deletes three messages starting with the current one.
⊗3⊗∂⊗A ;* Attaches three messages starting with the current one.
⊗3⊗∂⊗C ;Copies three messages starting with the current one.
⊗-⊗2⊗∂⊗D ;Deletes the two messages preceding the current one.
⊗-⊗2⊗∂⊗A ;Attaches the two messages preceding the current one.
⊗-⊗2⊗∂⊗C ;Copies the two messages preceding the current one.
Defining and using MACROS: ⊗XDEFINE ⊗Y
To save the user the trouble of having to type the same sequence of
commands several times, E now provides a very simple macro facility.
The XDEFINE command is used to define a macro as an arbitrary string
of characters (any of which can have either or both of the CONTROL
and META bits on). Then, the ⊗Y command is used to invoke expansion
of the macro, which is equivalent (with only a couple of exceptions)
to actually typing the command- and/or text-characters that make up
the macro definition.
At present, there is only one macro definition retained by E, and
that definition is caused to be expanded by the ⊗Y command. Later
there may be ways of defining more than one macro at a time. Also,
at present there is no way to define a macro that takes text
arguments to be substituted into the definition during expansion, but
this may also be added later.
A macro can be caused to be expanded a number of times in a row by
preceding the call by a numeric argument; e.g., ⊗7⊗Y will expand the
macro 7 consecutive times (unless an error or interruption
occurs--see below).
The command ⊗0⊗Y will type out the current macro definition without
expanding it. In the typeout of the definition, the characters α and
β are used to represent the display keyboard bits CONTROL and META,
respectively, and certain non-printing characters are printed as
<name of char>.
Normally, expansion of a macro continues until the end of the
definition and the exhaustion of the repeat argument. However, there
are numerous errors which, when detected by E, will cause immediate
termination of any macro expansion in progress. Also, the user can
manually interrupt macro expansion by typing ESC I (display terminals
only, sorry). If E asks a Yes or No question (to be answered Y or
N), it will ALWAYS read the answer from the terminal, never from a
macro expansion in progress; and if the answer is no, then macro
expansion will be terminated. Finally, if a macro calls or redefines
itself, then the original call will be terminated but the second call
or the redefinition will nevertheless happen. In the case of a macro
calling itself, the second call will run from the beginning of the
definition, and there is no way for the macro to run to completion
because it will always call itself before it completes expansion.
Most errors will terminate macro expansion immediately. Among those
errors that terminate macro expansion are all of the errors that
generate messages of the form "SORRY -- ...." plus the following:
1) Search failure.
2) Substitution failure.
3) Illegal command given from the line editor.
4) Saying anything but Y (for yes) to a Yes or No question.
5) Bad filename or file not found by the ⊗ε or ⊗λ command.
6) ALTMODE termination of an extended command.
7) Improper argument to XPAREN command.
8) Invalid directory pointer.
9) A checksum failure in the upper segment.
10) Redefining the macro.
When a macro is expanded, the display is normally not updated until
the macro has terminated. However, if the ⊗V command occurs as a
command within a macro, the screen will be updated immediately when
the expansion reaches that command. Thus by putting ⊗V commands at
strategic places in the definition, you can observe the progress of
the expansion.
During macro expansion, E omits the prompts for commands that read
characters from the terminal since the characters are instead read
from the macro definition; in particular, the "COMMAND?" that follows
the ⊗X command, and the "File?" that follows ⊗ε and ⊗λ commands are
all suppressed. Also, "OK" is not typed out during expansion.
However, informative typeouts are not suppressed in any way during
expansion. Also, since lines can be edited (through the line editor)
by a macro expansion, the echo of such edited lines will appear
during the expansion.
Commands:
⊗XDEFINE<cr>
All characters up to the end-of-definition character are read and
stored exactly as typed. The end-of-definition character for macro
definitions is the terminal's end-of-file (EOF) character: αβ<lf> on
displays and Imlacs and ↑Z on other terminals. During macro defining
no check is made to ensure that the string is a legal sequence of
commands. If the EOF character is the first character typed, then no
definition is stored and any previous definition is preserved;
otherwise any previous definition is discarded. Note that ALTMODE
does not end a macro definition; ALTMODE is a legitimate command to
be included in a macro. IMPORTANT NOTE FOR DISPLAY USERS: When
defining a macro, normal line editor commands (BACKSPACE, α<FORM>,
etc.) are activation characters instead and will be put into the
definition exactly as typed with the exception of CLEAR, which will
clear your line editor just as always. Thus if you make a mistake
while typing a line in the definition, DO NOT TYPE BACKSPACE to back
up; you must type CLEAR and then retype the correct version. If you
type BACKSPACE by mistake, the only way to correct the macro
definition is to finish it with the EOF character and then re-enter
the correct version with another XDEFINE command. BACKSPACE can,
however, be included in the definition as precisely that, BACKSPACE,
but avoid putting BACKSPACE at the end of an extended command name, a
search string, or a filename (because the BACKSPACE would be treated
as an activation character in the macro expansion). Note that this
warning does not apply to non-display users, whose BACKSPACE
character can still be used to back up over the last character in the
current line, even during the macro defining.
⊗Y
Characters from the current macro definition are used in place of
characters (commands and/or text) from the terminal until either the
definition runs out or the expansion is terminated early by one of
the conditions listed above. However, the answer to any Yes or No
question is still read from the terminal, with subsequent characters
again taken from the macro definition provided the answer to the
question is Yes. If ⊗Y is typed from within the line editor, then
the line is reloaded into the line editor with the cursor at the same
place it was when the ⊗Y was given and then expansion of the macro
begins. Note that if the first command from the macro definition is
a search, it will start from the position following that from which
the ⊗Y command was given in the line.
When macro expansion is terminated for any reason, an ALTMODE
character is used as the next input character to force completion of
any partially-typed command. However, there is one major exception
to this rule, namely:
If the macro expansion runs to completion and the effect of
the last characters in the macro is to leave a line of text
(from the file) in the line editor, then the normally-inserted
ALTMODE is omitted and the text is left in the line editor.
Because of the ALTMODE-insertion rule, if a macro definition ends
with a partially typed command, that command will be aborted by the
ALTMODE.
⊗7⊗Y
Characters are read from the macro definition instead of from the
terminal until the definition has run out 7 times or early
termination is forced by one of the afore-mentioned conditions.
⊗0⊗Y
The current macro definition is typed out, using the α and β
characters to represent the display-keyboard CONTROL and META bits,
respectively.
ETV files extended by other programs.
ETV can handle easily almost any file that has been extended by
another program even though the directory has not been updated by
that program. The single restriction is that the file must remain in
correct ETV format with Formfeeds occurring only as the first
character in a record. When ETV encounters a file that is longer
than the directory indicates, the file is read from the last
indicated page to the end of the file to make sure that the file is
properly formatted. If the file is formatted ok, then ETV generates
in core an updated version of the directory, including directory
lines for any new pages added to the file. The updated directory is
normally not written out onto the disk until some command forces one
or more other pages to be written on the disk. However, the ⊗XUPDATE
command immediately writes out the updated directory, if any. As
long as the updated directory remains not written out on the disk, a
"U" (for update) is displayed on the top line of the screen. The
first time any page is changed and written out, or when the ⊗XUPDATE
command is given, the updated directory will be written out and the
"U" will disappear.
When ETV opens a file that has been properly extended in the above
manner, it reports the number of pages that have been added to the
file, or, if none, the number of records by which the last page has
been extended. Also, if any pages have been added, the default
position within the file (at which ETV will place you if you gave no
specific page number in a /#P switch) is the first newly added page.
MAIL and RCV extend ETV files in this way.
BOOK MODE (/B) and the READ command
Book mode (/B) in E provides some special features for editing files,
especially files which are really books in disguise. The main feature
of book mode is that you cannot alter a file open in this mode. In
addition, the READ command allows you to read a file in book mode over a
long period of time without having to explicitly remember your place in
the file. Your place will be saved in a .BKP file.
You get into book mode by following the filename with /B when you are
starting to edit, or by using the READ command to edit the file.
1. In /B mode, E will never permit you to alter the file you are
editing; you cannot change to READONLY mode or READWRITE mode from /B
mode. In /B mode, if you change part of a page and try to write out
the new version, E will simply remind you that you cannot alter the
file.
2. To help you keep your place in a book-file you are reading, E
keeps a special psuedo-SNAIL file on your area. This file will have
the name <filnam>.BKP, where <filnam> is the primary name of the
book-file. Note that the .BKP file is NOT a SNAIL file (although it
is in SNAIL file format), and thus will never be deleted by LOGOUT.
This .BKP file will contain the page number and line number at which
you were editing the book-file the last time you exited from E. E
will neither look for nor write a .BKP file unless you have started E
with the monitor command READ, which automatically starts E in /B
mode looking for a .BKP file. Furthermore, when you start E with the
READ command, if you specify any of the /L, /P or /R switches, E will
not read or write any .BKP file. And if you start E with just the
READ command without any argument, then unless there already is
a .BKP file on your area, no new .BKP file will be written.
3. The READ command with an argument (and without any of the /L, /P
and /R switches) will look for a .BKP file with the given name and
PPN. If that .BKP file is not found, E will look for the .BKP file
on your current ALIAS area and then on your logged-in area. If a .BKP
file is found, it is used and updated when you exit. Otherwise, a
new .BKP file will be written onto your (ALIAS) area when you exit.
4. Whenever you use E in /B mode, it will reference TMPCOR files with
the name BK instead of ED. Thus you can switch back and forth
between editing some program and reading a book by alternately giving
the no-argument monitor commands ETV and READ (provided you have once
given the filenames). In /B mode, E will display "/B" following the
filename at the top of the screen.
5. When you have finished reading a book-file, E will delete the
<filnam>.BKP file automatically. E will think you have finished
reading the book if and only if you are on the last page of the file
when you exit.
- - - - -
The complete book WUTHERING HEIGHTS by Emily Bronte is available for
general reading in the file WUTHER[LIB,DOC]. To begin reading it,
simply give the monitor command:
.READ WUTHER[LIB,DOC]
Then when you exit from E, the file WUTHER.BKP will have been written
onto your (ALIAS) disk area with the numbers of the page and line
where you were last reading. To continue reading the file later
during the same login session (and with the same ALIAS as before),
simply say:
.READ
which will read in the TMPCOR file BK for your current ALIAS. When
you exit again, the TMPCOR file and the .BKP file will be updated.
To continue reading after you have logged out and back in, say:
.READ WUTHER
which will cause E to find your .BKP file, which itself will contain
the name of the book-file WUTHER[LIB,DOC].
Some other book-files will be found on the [LIB,DOC] disk area, including
GRIMM which is Grimm's Fairy Tales.
- - - - -
To read a file in /B mode without having the <filnam>.BKP file read
or written, type any one of the monitor commands:
.ETV <filename>/B
.READ <filename>/R
.READ <filename>/nP
where <filename> is the name of the file, including any extension
and/or PPN, and n is the number of the page you want to start on.
The /R in the second command and the /nP in the third inhibit use of
any .BKP file; the READ command starts E in /B mode.
IMLAC use of line editor.
On Imlacs, the command Z loads the Imlac's line editor with the
current line for editing. When the line has been edited, it should
be activated with either <CR> or <ALT>, which commands will behave as
they do on displays: <ALT> discards the edited text and leaves the
line unchanged; <CR> accepts the edited text and moves down a line.
(Sometimes <ALT> doesn't activate on an Imlac--when that happens,
type <CTRL><META><ALT>, which will activate.) This command only works
on Imlacs.
The line editor commands which enter the current line on a display
terminal (such as <CTRL><SPACE>, <CTRL><TAB>, <CTRL>S, <CTRL>D, etc.)
CANNOT be used for that purpose on Imlacs. Other commands which on
displays load a line in the line editor CAN be used on Imlacs, and
they will load the line editor. Currently, however, whenever the
line editor is loaded on an Imlac, the cursor is always positioned at
the beginning of the line. For instance, the command ⊗↑ (normally,
"move to end of line above") will, on an Imlac, do "move to beginning
of line above", as will the ⊗; command (normally, "move to same
column position on line above").
NEW EXTENDED COMMANDS PROVIDED MAINLY FOR TELETYPE USERS
The following extended commands do exactly the same thing as the
corresponding single-character commands for which they were named.
Note that some of the single-character commands are impossible to
use on Teletypes because they are intercepted by the system as
special control functions (eg, ↑U clears input line being typed).
See the writeup for the single-character commands for details of the functions.
Extended Equivalent Single-Character Command
Command
XEXIST ∃ (there-exists sign, octal 025, ↑U (intercepted by system))
XLAMBDA λ (lambda, octal 010, ↑H) Switches files.
XLOOKUP λ (lambda, octal 010, ↑H) Switches files.
XEPSILON ε (epsilon, octal 006, ↑F) Switches files.
XENTER ε (epsilon, octal 006, ↑F) Switches files.
XPARTIAL ∂ (partial-sign, octal 017, ↑O (intercepted by system))
XMSG ∂ (partial-sign, octal 017, ↑O (intercepted by system))
FILEHACKS
The following filehacks, also usable with the COPY program, are
available in E. The file represented by each is indicated; all these
files are on the [2,2] disk area. A filehack consists of a backslash
followed by a name from the list below; the name may be abbreviated
by as many letter as necessary to identify it uniquely (current
abbreviations are given below). A filehack takes the place of the
filename and can be followed by the usual switches. Note that some
of the files below are not usually maintained in E format; beware.
FILEHACK ABBR FILE
\MAIL \M The current user's mail file.
\MSG \M The current user's mail file.
\GRIPES \G The system gripe file.
\NOTICE \NO The system message file: NOTICE.TXT[2,2].
\NAP \N The current user's NS notifications file.
\NS \N The current user's NS notifications file.
\DOWN \DO The system downtime forecast file.
\DAY \DA The message-of-the-day file.
OLD news about E. More recent news is on p. 2.
∂1/16/76 -- Imlac users can now use the Imlac's line editor to edit
text in E; see p. 27. Several new extended commands have been added
to allow TTY/Imlac users to execute commands that previously were
available only through certain characters not generally typeable on
TTYs; see p. 28. The XMARK command and XINSERT and β<FORM> are now
illegal in /N mode; they always used to die horribly in /N mode
anyway (will be fixed eventually). Bug in \ command fixed to clear
ESC I flag and clear search page number at top. XEXIST and ∃
commands includes "R" for current file if open in Readonly mode (for
ttys). /N included in filename displayed when in no-directory mode.
Various other improvements in tty/imlac service. XTYPE command (old
command) now accepts search distance as amount to type out; mainly
useful in conjuction with new XMSG (XPARTIAL) commands:
XMSG<cr>XTYPE<cr> will type out current message in mail files, or
current page if no ∂'s. Certain filehacks (eg, \GRIPES) can be
typed to E where filename is expected; allows easy abbreviation of
names of certain files on [2,2]--see p. 29.
∂12/14/75 -- XMARK command abbreviation and use in attach mode.
Since the XMAIL command forces typing of XMAR to get XMARK, a special
command XM has been put in to mean XMARK. Thus MARK can once again
be abbreviated to one character (but not to two!). Also, the XMARK
command is now legal in attach mode: it causes the attached text to
be put down on the page before the pagemark is inserted.
∂12/12/75 -- New X commands: XMAIL, XSEND, XREMIND.
These commands run the MAIL program on another job to do the MAIL,
SEND, and REMIND commands, respectively. The whole extended command
line typed to ETV is passed verbatim to MAIL as its command line.
The text of the message is taken from the attach buffer, if any, or
from the whole page if no attach buffer. If the /SUBJECT switch is
included in the command, then MAIL, as usual, will interpret the
first line of the message as a subject to be included on the header
line. If MAIL detects any error condition, it will abort the
command. MAIL will type out a message on your terminal telling you
whether or not the command you gave was successfully executed.
Remember that you CANNOT type all or part of the message on the
command line!
∂12/11/75 -- A new X command, XPROTECTION, is now available.
If this command is given without a following argument, it causes the
current protection key to be reported.
If this command is given with a following argument (consisting of, at
most, 3 octal characters separated from the command by a space), it
causes the protection to be changed to the specified value, A request
to change the protection of a file that is protection-protected against
the user will not be honored.
A warning in also now given when one enters a file that has the 400
protection bit set (such files are not saved by DART).
∂12/5/75 -- When more than 8 files are referenced, by file switching
commands, ETV now gives the new file the referencing number that was
assigned to the longest-unreferenced file. The user is warned of this
reassignment.
∂11/20/75 -- The trailer line on the screen now reports two things on
the right. The first item is the number of records occupied by the page
on the disk (this is followed by the letter R). The second item is either:
a) the number of characters that can be added to the core version
of the page before rippling will be required (this number is
preceded by a minus sign (-)), or
b) the number of extra characters that have been typed, over and
beyond the number that can be accomodated without rippling (this
number is preceded by a plus sign (+)).
Should the number that would otherwise appear exceed 640 then the second
item is either:
c) the number of records of nulls that will appear on the disk if
the page in its present state is written out without XBURPing
(this number is followed by the letter B), or
d) the number of new records that will be created (with rippling)
when the page is written (this is followed by the letter X).
∂11/20/75 -- ETV files extended by other programs.
ETV can handle easily almost any file that has been extended by
another program even though the directory has not been updated by
that program. The single restriction is that the file must remain in
correct ETV format with Formfeeds occurring only as the first
character in a record. MAIL and RCV extend files ok. See p. 25.
∂11/13/75 -- XSPOOL and XXSPOOL commands, if given when something is
attached, now spool only the ATTACH buffer instead of the rest of the
page as formerly. If no attachment, entire page is spooled as usual.
∂11/11/75 -- Automatic directory updating for extended files.
If you edit with ETV a file that has been extended by some other
program, ETV will automatically update the directory. However, the
updated directory will not be written out until some other page of
the file has been changed and is being written on the disk. The
extended part of the file must be formatted correctly for ETV, which
simply means that any formfeeds found in that part of the file must
occur as the first character in a (200-word) record; otherwise, the
file must be reformatted and a new directory generated. When a file
has been extended properly, ETV will say how many pages have been
added to the file, or if none, how many records have been added to
the last page.
∂10/28/75 -- ETV now permits lines containing up to 133 characters to be
transfered to the line editor for editing (the previous limit was 120).
In this context, characters are counted in a special way with each TAB
being counted as the display space which it occupies plus 2.
The line editor itself will allow the line to be augmentd until the
character count has reached 140 when it will activate, but such lines
cannot be reentered.
Lines longer than these limits may be broken up by XJUST and XJFILL
commands. Their lengths may be ascertained by the XLINCNT command.
∂10/17/75 -- Un-copy-attach bug fixed.
An attempt to detach more lines than are in the ATTACH buffer no longer
causes trouble. The current line cursor may not be left where you expect
it to be but E does not blow up.
∂10/16/75 -- Bug fixed in macro calls.
∂10/15/75 -- Extra information on the trailer line.
The trailer line now shows, at the extreme right, the state of the
current page with regard to the space it occupies or will occupy when
stored on the disk. Under normal conditions the number of records is
shown with the letter R.
When the X letter now appears on the header line this X is repeated on
the trailer line preceded by a number reporting the number of extra
records (of 128 words each) that will be required.
If, on the other hand, the page now contains or will contain at least
one complete record of nulls, this fact is reported by the letter B (for
bloat) and the number of such records. The command XBURP permits one
to store the corrected page with these superfluous records deleted. As
always, these superfluous records are not deleted when the page is
stored by the . command, by changing pages, by file switching or by the
E command. See the second paragraph on p. 5.
∂10/9/75 -- Punctuation-at-end-of-line bug in XJUST command fixed.
Note that E assumes that a period at the end of a line is always
punctuation and that the user will want two spaces after it, when
it is moved to within a justified line. Periods within a line are
assumed to be punctuation marks if they already have two spaces after
them, and the two spaces are preserved. If only one space is used,
they are assumed to terminate an abbreviation and so only one space
will follow them in the justified text. Exclamation marks and
question marks are treated the same as periods.
∂10/7/75 -- Macro defining and calling commands: ⊗XDEFINE ⊗Y.
E now has a very simple yet useful macro facility which saves the
user from having to type the same sequence of commands several times.
See p. 24.
∂10/7/75 -- ⊗XBURP command causes RIPPLING to discard whole records
of nulls from the current page only. Later this command may discard
whole records of nulls from all pages in one RIPPLING.
∂10/7/75 -- ⊗V improved on Data Disc displays.
αV now merely redraws the screen's text without erasing the screen
first. αβV still erases the screen and then redraws the text. Thus
αV is somewhat faster and sufficient for most cases.
∂10/1/75 -- Partial-sign command ⊗∂<cmd> for handling message files.
To facilitate editing message files with E, there is now a
partial-sign search command which searches for lines beginning with
partial-signs. This command, like the ⊗F search command, must be
followed by a second command which determines the action taken. This
command is capable of attaching or deleting a whole page's text and
deleting the associated pagemark at the same time. Soon MAIL will
write message files in E format. See p. 23.
∂10/1/75 -- An annoying substitution bug causing ILL MEM REFs and
free storage errors has been fixed.
∂9/75 -- ⊗XLINCNT now reports the length of the current line and the
number of characters on the current page in addition to the number of
the current line and the number of lines on the page. The length of
the current line is in display columns, that is, tabs are counted as
the number of spaces they produce and the CRLF on the end of the line
is not counted.
∂9/75 -- Window positioning has been improved.
Most commands that cause the arrow to move off screen will now
position the new window such that the arrow is in the middle.
∂9/75 -- ⊗0⊗W and ⊗0⊗L now move half a window in the indicated direction.
∂9/75 -- Type ahead for line editor improved.
You can now type ahead all kinds of line editor commands and win
(including backspace and control digits). Also, <bs> as a command to
move up a line works completely now, including on blank lines, and
can be typed ahead. Of course, within the line editor, <bs> is still
a line editor command.
∂9/75 -- Page number specifying in ⊗H and ⊗? commands.
The ⊗H (Home) and ⊗? commands now will take arguments to over-ride
the default values for the page number either as specified or if a
sign is used for a relative shift of page number by the specified
amount. See p. 15.
∂8/75 -- Parenthesis finding/matching commands: ⊗( ⊗) ⊗↔ ⊗XPAREN.
See p. 21.
∂8/75 -- Automatic and manual beeping upon command completion: ⊗XBEEP.
See p. 22.
∂8/75 -- Editing a line with the line editor now does not set the
WRITE flag if the line was not changed. Thus the line editor can be
used to examine lines without necessarily turning on the W at the top
of the screen.
∂8/75 -- CONTINUEing after exit.
After exiting from E, the user can give the monitor command CONTINUE
to get back into E quickly at the same line and page from which the
command to exit was given.
∂7/75 -- The ⊗; and ⊗: commands move straight up and down inside line editor.
The commands ⊗; and ⊗: do the same thing as ⊗↑ and ⊗↓ respectively,
except that instead of positioning you at the end of the new line,
they position you at the display column where you were when you gave
the command. Thus these commands move you (inside the line editor)
straight up and down, except that if the display column is in the
middle of a tab on the new line, then you are positioned at the
beginning of that tab and if the display column is beyond the end of
the newly edited line, you are positioned at the end of that line.
∂7/75 -- The α* and αβ* commands repeat the last search command given.
See p. 13.
∂7/75 -- α<cr> restores previous line editor line when typing filename.
When you get the message "Try again" after specifying a file name
with some error, it is now possible to invoke the <control><cr> line
editor command to recall what you had typed so that you need not type
everything over again. Most of the time this does not work but it
does here.
∂7/75 -- Bug in formatting SOS files fixed.
A recent bug in formatting SOS files has been fixed. Users are still
advised to repage such files with the /F switch if this is a
reasonable thing to do.
∂6/75 -- /F and /F/R modes break long pages up by inserting FFs.
See p. 19.
∂6/75 -- Unexpected errors encountered by E are now automatically recorded.
An FBI program reports most of the mal-functionings to ALS when you
get into trouble and you may hear from him for more details if he
thinks that he can do something for you (or vice versa).
∂6/75 -- The main timing problem on entering the line editor is fixed.
Now you can type ahead characters meant for the line editor without
waiting for the line editor to be set up after you have given a
command to edit a particular line. The fix involved a system modification.
∂1975 -- Formerly fatal errors kludged around.
Some formerly fatal errors no longer cause E to HALT, although the
fix may not always work and E may crash later after all.
∂1975 -- UDP files are remembered on file switching (maybe almost right).